export const commonUtil = {
	/**
	 * 页面跳转
	 * @param {string} to 跳转链接 /pages/idnex/index
	 * @param {Object} param 参数 {key : value, ...}
	 * @param {string} mode 模式 
	 */
	redirectTo(to, param, mode) {
		let url = to;
		if (param != undefined) {
			Object.keys(param).forEach(function(key) {
				if (url.indexOf('?') != -1) {
					url += "&" + key + "=" + param[key];
				} else {
					url += "?" + key + "=" + param[key];
				}
			});
		}
		switch (mode) {
			case 'tabbar':
				// 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
				uni.switchTab({
					url: url
				})
				break;
			case 'redirectTo':
				// 关闭当前页面，跳转到应用内的某个页面。
				uni.redirectTo({
					url: url
				});
				break;
			case 'reLaunch':
				// 关闭所有页面，打开到应用内的某个页面。
				uni.reLaunch({
					url: url
				});
				break;
			default:
				// 保留当前页面，跳转到应用内的某个页面
				uni.navigateTo({
					url: url
				});
		}
	},
	/**
	 *
	 * @param str  需要截断的字符串
	 * @param startLength 首位显示几个数字
	 * @param endLength 莫位显示几个数字
	 * @param symbol 被截断部分要替换的符号 @default '*'
	 * @returns
	 */
	truncateStrReplaceStar(str = '', startLength = 3, endLength = 3, symbol = '*') {
		if (!str) return '';
		str = str + '';
		let maxLength = str.length - endLength;
		if (str.indexOf('@') != -1) {
			let index = str.indexOf('@');
			maxLength = str.length - index;
		} else {
			maxLength = str.length - endLength;
		}
		const prefix = str.slice(0, startLength);
		const suffix = str.slice(maxLength);
		const masked = symbol.repeat(maxLength - startLength);
		return `${prefix}${masked}${suffix}`;
	},
}